import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
	state: {
		// 从发现页中的某个选项卡跳到我的音乐,再回到发现页还是原来的选项卡
		path: "/recommend",
		// 播放的音乐列表
		playSongList: [
			{
				albumimg:
					"http://imge.kugou.com/stdmusic/400/20160718/20160718092740664264.jpg",
				author: "薛之谦",
				lyric: `[00:00.000]作词 : 薛之谦
					[00:01.000]作曲 : 薛之谦
					[00:03.269]编曲：郑伟/张宝宇
					[00:21.056]简单点
					[00:24.967]说话的方式简单点
					[00:30.439]递进的情绪请省略
					[00:33.369]你又不是个演员
					[00:36.016]别设计那些情节
					[00:41.795]没意见
					[00:45.905]我只想看看你怎么圆
					[00:51.415]你难过的太表面
					[00:54.338]像没天赋的演员
					[00:56.937]观众一眼能看见
					[01:02.295]该配合你演出的我演视而不见[01:07.395]在逼一个最爱你的人即兴表演[01:12.584]什么时候我们开始收起了底线[01:17.824]顺应时代的改变看那些拙劣的表演[01:23.069]可你曾经那么爱我干嘛演出细节[01:28.423]我该变成什么样子才能延缓厌倦[01:33.707]原来当爱放下防备后的这些那些[01:39.105]才是考验
					[01:44.899]没意见
					[01:48.762]你想怎样我都随便
					[01:54.574]你演技也有限
					[01:57.210]又不用说感言
					[01:59.776]分开就平淡些
					[02:05.003]该配合你演出的我演视而不见[02:10.281]别逼一个最爱你的人即兴表演[02:15.577]什么时候我们开始没有了底线[02:20.685]顺着别人的谎言被动就不显得可怜[02:26.002]可你曾经那么爱我干嘛演出细节[02:31.284]我该变成什么样子才能配合出演[02:36.548]原来当爱放下防备后的这些那些[02:41.810]都有个期限
					[02:47.806]其实台下的观众就我一个
					[02:52.934]其实我也看出你有点不舍
					[02:57.957]场景也习惯我们来回拉扯
					[03:02.763]还计较着什么
					[03:08.619]其实说分不开的也不见得
					[03:13.691]其实感情最怕的就是拖着
					[03:19.010]越演到重场戏越哭不出了
					[03:24.025]是否还值得
					[03:28.865]该配合你演出的我尽力在表演[03:34.138]像情感节目里的嘉宾任人挑选[03:39.404]如果还能看出我有爱你的那面[03:44.602]请剪掉那些情节让我看上去体面[03:49.795]可你曾经那么爱我干嘛演出细节[03:55.033]不在意的样子是我最后的表演[04:00.917]是因为爱你我才选择表演
					[04:05.957]这种成全
					[04:17.041]制作人：赵英俊
					[04:17.850]合声：赵英俊
					[04:18.679]录音师：王晓海
					[04:19.472]混音师：鲍锐
					[04:20.254]母带处理工程师：鲍锐`,
				songimg:
					"http://singerimg.kugou.com/uploadpic/,softhead/400/20200603/20200603112123228.jpg",
				songmid: "57B83EAF673D77EE21009CBD8FD05BD6",
				time: "04:21",
				title: "演员",
				url:
					"https://sharefs.yun.kugou.com/202102231935/fc9b1f239a2d38f29dd11a8d56a5cf0e/G202/M04/1B/13/aocBAF55G0-ADd0HAD2Y88Efqbw072.mp3",
			},
		],
		// 正在播放的音乐
		playMusic: {
			albumimg:
				"http://imge.kugou.com/stdmusic/400/20160718/20160718092740664264.jpg",
			author: "薛之谦",
			lyric: `[00:00.000]作词 : 薛之谦
			[00:01.000]作曲 : 薛之谦
			[00:03.269]编曲：郑伟/张宝宇
			[00:21.056]简单点
			[00:24.967]说话的方式简单点
			[00:30.439]递进的情绪请省略
			[00:33.369]你又不是个演员
			[00:36.016]别设计那些情节
			[00:41.795]没意见
			[00:45.905]我只想看看你怎么圆
			[00:51.415]你难过的太表面
			[00:54.338]像没天赋的演员
			[00:56.937]观众一眼能看见
			[01:02.295]该配合你演出的我演视而不见
			[01:07.395]在逼一个最爱你的人即兴表演
			[01:12.584]什么时候我们开始收起了底线
			[01:17.824]顺应时代的改变看那些拙劣的表演[01:23.069]可你曾经那么爱我干嘛演出细节
			[01:28.423]我该变成什么样子才能延缓厌倦
			[01:33.707]原来当爱放下防备后的这些那些
			[01:39.105]才是考验
			[01:44.899]没意见
			[01:48.762]你想怎样我都随便
			[01:54.574]你演技也有限
			[01:57.210]又不用说感言
			[01:59.776]分开就平淡些
			[02:05.003]该配合你演出的我演视而不见
			[02:10.281]别逼一个最爱你的人即兴表演
			[02:15.577]什么时候我们开始没有了底线
			[02:20.685]顺着别人的谎言被动就不显得可怜[02:26.002]可你曾经那么爱我干嘛演出细节
			[02:31.284]我该变成什么样子才能配合出演
			[02:36.548]原来当爱放下防备后的这些那些
			[02:41.810]都有个期限
			[02:47.806]其实台下的观众就我一个
			[02:52.934]其实我也看出你有点不舍
			[02:57.957]场景也习惯我们来回拉扯
			[03:02.763]还计较着什么
			[03:08.619]其实说分不开的也不见得
			[03:13.691]其实感情最怕的就是拖着
			[03:19.010]越演到重场戏越哭不出了
			[03:24.025]是否还值得
			[03:28.865]该配合你演出的我尽力在表演
			[03:34.138]像情感节目里的嘉宾任人挑选
			[03:39.404]如果还能看出我有爱你的那面
			[03:44.602]请剪掉那些情节让我看上去体面
			[03:49.795]可你曾经那么爱我干嘛演出细节
			[03:55.033]不在意的样子是我最后的表演
			[04:00.917]是因为爱你我才选择表演
			[04:05.957]这种成全
			[04:17.041]制作人：赵英俊
			[04:17.850]合声：赵英俊
			[04:18.679]录音师：王晓海
			[04:19.472]混音师：鲍锐
			[04:20.254]母带处理工程师：鲍锐`,
			songimg:
				"http://singerimg.kugou.com/uploadpic/softhead/400/20200603/20200603112123228.jpg",
			songmid: "57B83EAF673D77EE21009CBD8FD05BD6",
			time: "04:21",
			title: "演员",
			url:
				"https://sharefs.yun.kugou.com/202102231935/fc9b1f239a2d38f29dd11a8d56a5cf0e/G202/M04/1B/13/aocBAF55G0-ADd0HAD2Y88Efqbw072.mp3",
		},
		// 上面的有bug 歌词获取慢了点 点击歌曲歌词获取不到 所有用这个对象来监视
		nowPlayMusic: {
			albumimg:
				"http://imge.kugou.com/stdmusic/400/20150719/20150719010047203836.jpg",
			author: "逃跑计划",
			lyric: `[00:00.000] 作词 : 毛川/李赤
				[00:00.340] 作曲 : 毛川
				[00:00.680]编曲：Giles Tully / 李赤
				[00:01.680]制作人：Giles Tully / 李赤
				[00:02.680]缩混：Giles Tully / Patrick Weyer-Brown / 姜北生
				[00:03.680]Engineered by Hyperbolic Productions (Patrick Weyer-Brown & Giles Tully)
				[00:04.680]Acoustic Guitar & Drum recorded by Hyperbolic Productions (Patrick Weyer-Brown) at YUM music
				[00:05.680]Guitar Bass Vocal recorded by Hyperbolic Productions (Patrick Weyer-Brown & Giles Tully)
				[00:06.680]其他录音：时俊峰 福达录音棚 / 姜北生 环球唱片录音棚 / 方岩 Funky Studio[00:07.680]人声和声：逃跑计划
				[00:08.680]女声和声：孙亮亮
				[00:09.680]弦乐制作：朱金泰
				[00:10.680]弦乐编写：朱金泰 / 陈迪
				[00:11.680]弦乐：中国国家交响乐团
				[00:12.680]首席小提琴：董智敏
				[00:13.680]录音棚：有沐录音棚 YUM Studio[00:14.680]弦乐录音：杨杰、郑昊杰
				[00:15.680]制作助理：哈斯瑚必来
				[00:16.680]母带处理：Patrick Weyer-Brown (FR) 法国SAE Paris 录音棚
				[00:17.680]夜空中最亮的星 能否听清
				[00:26.230]那仰望的人 心底的孤独和叹息[00:35.650]夜空中最亮的星 能否记起
				[00:44.210]曾与我同行 消失在风里的身影[00:52.540]我祈祷拥有一颗透明的心灵
				[00:57.640]和会流泪的眼睛
				[01:01.880]给我再去相信的勇气
				[01:06.400]越过谎言去拥抱你
				[01:10.420]每当我找不到存在的意义
				[01:15.300]每当我迷失在黑夜里
				[01:20.160]夜空中最亮的星
				[01:24.270]请指引我靠近你
				[01:37.880]夜空中最亮的星 是否知道
				[01:46.450]曾与我同行的身影 如今在哪里
				[01:55.450]夜空中最亮的星 是否在意
				[02:03.950]是等太阳升起 还是意外先来临
				[02:12.370]我宁愿所有痛苦都留在心里
				[02:17.690]也不愿忘记你的眼睛
				[02:22.270]给我再去相信的勇气
				[02:26.400]越过谎言去拥抱你
				[02:30.350]每当我找不到存在的意义
				[02:35.270]每当我迷失在黑夜里
				[02:40.720]夜空中最亮的星 请照亮我前行[03:05.420]我祈祷拥有一颗透明的心灵
				[03:10.870]和会流泪的眼睛
				[03:15.930]给我再去相信的勇气
				[03:19.660]越过谎言去拥抱你
				[03:23.600]每当我找不到存在的意义
				[03:28.760]每当我迷失在黑夜里
				[03:33.540]夜空中最亮的星
				[03:37.590]请照亮我前行
				[03:50.890]夜空中最亮的星 能否听清
				[03:59.810]那仰望的人 心底的孤独和叹息`,
			songimg:
				"http://singerimg.kugou.com/uploadpic/softhead/400/20150201/20150201104154938158.jpg",
			songmid: "E7415D24F9FA9BC88CDE1B2D326D1DB3",
			time: "04:12",
			title: "夜空中最亮的星",
			url:
				"https://sharefs.yun.kugou.com/202103031307/d29e0d0b236e37a13b31457585a37daa/G202/M04/1B/13/aocBAF55G0-ADd0HAD2Y88Efqbw072.mp3",
		},
	},
	mutations: {
		// 记住路由
		updatePath(state, payload) {
			state.path = payload;
		},
		// // 页面加载的footer歌单(暂时不打算使用 使用的话就是获取每日华语的推荐音乐)
		// getPlaySongList(state, payload) {
		// 	state.playSongList = payload;
		// },
		// 获取播放的音乐
		getPlayMusic(state, payload) {
			state.playMusic = payload;
		},
		// 获取歌词
		getLyric(state, payload) {
			state.playMusic.lyric = payload;
			const flag = state.playSongList.every((item) => {
				return item.songmid !== state.playMusic.songmid;
			});
			if (flag) {
				state.playSongList.push(state.playMusic);
			}
			state.nowPlayMusic = state.playMusic;
			console.log(state.nowPlayMusic);
		},
	},
	actions: {
		// 获取首次加载的音乐列表(暂时不打算使用 使用的话就是获取每日华语的推荐音乐)
		getChineseNewSong(context, payload) {
			payload.axios
				.get(
					"/api-new-song/?version=9108&plat=0&with_cover=1&pagesize=100&type=1&area_code=1&page=1&with_res_tag=1"
				)
				.then((res) => {
					let result = res.data
						.replace(/<!--KG_TAG_RES_START-->/, "")
						.replace(/<!--KG_TAG_RES_END-->/, "");
					let results = JSON.parse(result);
					results.data.info.forEach((item) => {
						item.duration = payload
							.moment(item.duration * 1000)
							.format("mm:ss");
					});
					// context.commit("getPlaySongList", results.data.info);
				});
		},
		// 获取音乐的播放地址
		async updatePlayMusic(context, payload) {
			await context.dispatch("getMusicUrl", payload);
			await context.dispatch("getMusicLyric", payload);
		},
		// 获取音乐的播放地址
		getMusicUrl(context, payload) {
			return new Promise((resolve) => {
				payload.this.axios
					.post(
						"/api-music",
						`info=kugou,${payload.hash}&key=Deb4vXIw1ZBLNKguJSmdQFpnjosH2OaU`
					)
					.then((res) => {
						if (res.data.data.url.split(".")[1] == "m4a") {
							payload.this.$alert(
								"该音乐为酷狗付费音乐，暂时无法播放，请切换其他歌曲",
								"音乐无版权提示",
								{
									confirmButtonText: "好的",
									callback: () => {
										payload.this.$message({
											type: "error",
											message: "非常抱歉哦~",
										});
									},
								}
							);
							return;
						}
						if (res.data.data.lyric !== null) {
							// 如果有歌词
							// 获取播放音乐的信息
							const playMusic = res.data.data;
							// 调用vuex的方法
							this.$store.commit("getPlayMusic", playMusic);
							return;
						} else {
							// 如果没歌词
							// 获取音乐名称和歌手名称
							const name = {
								musicName: res.data.data.title,
								singerName: res.data.data.author,
							};
							// 获取播放音乐的信息
							const playMusic = res.data.data;
							// 调用vuex的方法
							context.commit("getPlayMusic", playMusic);
							payload.name = name;
							resolve(payload);
						}
					});
			});
		},
		// 获取音乐的id+歌词
		getMusicLyric(context, payload) {
			// 发送请求获取音乐的id
			payload.this.axios
				.get(`/api-mp3/search?keywords=${payload.name.musicName}`)
				.then((res) => {
					// 获取所有的列表
					const songsList = res.data.result.songs;
					// 获取第一条音乐id(以备没有原歌手的歌词)
					const firstMusicId = songsList[0].id;
					// 找到与歌手名称相同名称的音乐歌词
					const musicId = [];
					songsList.forEach((item) => {
						// 如果遍历到的每一项的artist的数组长度为1
						if (
							item.artists.length == 1 &&
							item.artists[0].name == payload.name.singerName
						) {
							musicId.push(item.id);
						}
					});
					// 获取到音乐id
					// 去获取音乐的歌词
					// 如果有传过来的原唱歌手id
					if (musicId.length !== 0) {
						payload.this.axios
							.get(`/api-mp3/lyric?id=${musicId[0]}`)
							.then((res) => {
								// 获取到歌词
								let lyric;
								if (res.data.nolyric) {
									lyric = "";
								} else {
									lyric = res.data.lrc.lyric;
								}
								// 调用vuex的方法
								context.commit("getLyric", lyric);
							})
							.catch((err) => {
								throw err;
							});
					} else if (firstMusicId) {
						// 如果没有就用默认的第一条id的歌词
						payload.this.axios
							.get(`/api-mp3/lyric?id=${firstMusicId}`)
							.then((res) => {
								// 获取到歌词
								let lyric;
								if (res.data.nolyric) {
									lyric = "";
								} else {
									lyric = res.data.lrc.lyric;
								}
								// 调用vuex的方法
								context.commit("getLyric", lyric);
							})
							.catch((err) => {
								throw err;
							});
					}
				});
		},
	},
	modules: {},
});
